package com.smedi.ismedi.constructionproject.core.application.service;

import com.smedi.ismedi.constructionproject.core.application.command.ProjectAssignmentCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProjectAssignmentEditCommand;
import com.smedi.ismedi.constructionproject.core.application.command.ProjectBasicCommand;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProjectAssignment;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProjectBasic;

import java.util.List;

/**
 * @Author: xulinjun
 * @Date: 2021-6-21 10:25
 */
public interface ProjectAssignmentApplicationService {
    ProjectAssignment saveProjectAssignment(ProjectAssignmentCommand projectAssignmentCommand);

    void postBatchAddExistingPerson(List<Long> personIds, Long projectId, Long projectOrganizationId);

    void deleteProjectAssignment(Long projectAssignmentId);

    void deleteProjectAssignmentsByPersonId(Long personId);

    void deleteProjectAssignmentsByPersonIdAndProjectId(Long personId,Long projectId);

    Boolean validateProjectOrganizationHasAssignment(Long projectOrganizationId);

    List<Long> queryPersonIdsByCurrentProjectOrganizationId(Long projectOrganizationId);

    void editProjectAssignment(ProjectAssignmentEditCommand projectAssignmentEditCommand);
}
